﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace myLittleC
{
    #region ExpInt
    interface ISyntaxNode
    {
        String ToString();

        String ToString(String Shift);
        String ToString(String prev, bool up);
    }

    /// <summary>
    /// общий интерфес для всех синтаксический выражений
    /// </summary>
    interface ISyntaxExpression : ISyntaxNode
    {
        
    }

    interface ISyntaxOperations : ISyntaxExpression
    {
       
        SubTokenType Operation { get; }
    }

    interface ISyntaxVar : ISyntaxExpression
    {
        ExpType ExType { get; }
    }

    interface ISyntaxConst : ISyntaxExpression
    {
        Object obValue { get; }
        ExpType ExType { get; }
    }

    /// <summary>
    /// общий интерфес для всех синтаксический констркукций (while if блок и тп)
    /// </summary>
    interface ISyntaxStat : ISyntaxNode
    {
 
    }

    #endregion

    interface IStatement : ISyntaxNode
    {

    }


    interface ISymbol
    {
        String Name { get; }
		String ToString(String Shift);
    }

    interface IComError
    {
        String ToString();
        ERRORS ErrorCode { get; }
    }
}
